public class PlusOne {
    /**
     * @param digits
     * 给定一个由 整数 组成的 非空 数组所表示的非负整数，在该数的基础上加一。
     * 最高位数字存放在数组的首位， 数组中每个元素只存储单个数字。
     * 你可以假设除了整数 0 之外，这个整数不会以零开头
     * 链接：https://leetcode-cn.com/problems/plus-one
     * 解题思路:从后往前 若数字为9 置0 若不为9 加1
     * 注意需考虑数字全为9的特殊情况
     */
    public int[] plusOne(int[] digits) {
        boolean flag = true;
        for (int i = digits.length-1;i>=0;i++){
            if(flag==false){
                break;
            }
            if (digits[i]==9){
                digits[i] =0;
            }else {
                digits[i] =digits[i]+1;
                flag = false;
            }
        }
        if (flag==true){
            int[] new_digits = new int[digits.length+1];
            new_digits[0] =1;
            return new_digits;
        }
        return digits;

    }

    public static void main(String[] args) {

    }
}
